2023/12/231259字符

$.Deferred() 延迟

var df = $.Deferred();
// done 成功   fail 失败    progress 正在进行
// resolve     reject       notify

function creatScore () {
    var df = $.Deferred();
    setInterval(() => {
        var score = Math.random() * 100;
        if (score > 70) {
            df.resolve('congradulation');
        } else if (score < 50) {
            df.reject('get out');
        } else {
            df.notify('go on');
        }
    }, 1000);
    return df.promise();
}
var df = creatScore();
// // 注册成功的回调函数
// df.done((ms) => console.log('oh Yeah!!!', ms));
// // 注册失败的回调函数
// df.fail((ms) => console.log('oh No...', ms));
// // 注册进行时的函数
// df.progress((ms) => console.log('waiting~~~', ms));

// then 简化写法
df.then(() => {  // done
    console.log('oh Yeah!!!');
    return 'ok';
}, () => {  // fail
    console.log('oh No...');
    return 'no';
}, () => {  // progress
    console.log('waiting~~~');
    return 'go on';
}).then((param) => {  // 再次调用 then 指向就不是 df 了
    console.log('泡妞', param)
}, (param) => {
    console.log(param, '脸');
}, (param) => {
    console.log(param, '加油');
});